DevOps是「開發」(Development)和「維運」(Operations)的縮寫,旨在消除「軟體開發人員」和「維運技術人員」之間的隔閡。
傳統上,開發和維運是兩個不同的團隊,開發人員關注編寫程式、創新功能,而維運人員則專注於維護系統穩定性。這種模式可能導致「程式完成但無法快速佈署」的情況,開發和維運脫節,就會出現 "It Works On My Machine. (它在我的電腦上執行正常)" 的狀況QAQ
傳統的開發和維運模式往往導致軟體交付週期過長,因為兩者之間的溝通通常較為緩慢。實施DevOps後,開發和維運可以實時同步進度,顯著提高軟體交付的速度。
DevOps強調持續整合(CI)和持續交付(CD),這意味著每次提交的程式都會進行自動測試,並在所有測試通過後自動佈署到正式環境中,從而最大限度地降低錯誤發生的機率,確保交付的軟體品質。
維運自動化是DevOps的核心之一。通過編寫自動化腳本來處理佈署、監控和測試等重複性工作,可以減少人為錯誤並提升效率,讓開發和維運人員能夠專注於更具價值的任務。
DevOps透過文化、流程和工具的整合,促進團隊之間的緊密合作,從而縮短軟體交付的週期,讓「程式開發 → 測試 → 上線」的過程更加快速、高效和穩定。它不僅僅是一套工具或技術,更是一種文化和方法論,強調團隊之間的協作、溝通和自動化。
通過實施DevOps,開發與維運之間的壁壘逐漸消失,這兩個團隊不再是獨立角色,而是 持續協作 的夥伴。這種協作不僅限於技術層面,更是一種團隊文化的轉變。
常見的 DevOps 方法有 Scrum、Kanban 和 Agile,它們通過強化團隊協作與持續改進來加速開發流程。Scrum 透過短週期開發(如衝刺)來加速進度,而 Kanban 則專注於管理進行中的工作。這些方法與 DevOps 工具鏈相結合,有效簡化了從開發到佈署的每個步驟。
DevOps 工具鏈涵蓋了從規劃到監控的每個階段,常見的相關工具有:
以上這些分類是指在各階段可能會使用到的工具,所以相同階段的工具擁有的功用可能完全不同~
DevOps 強調自動化與持續改進,常見的實踐包括:
今天我們簡單介紹了DevOps的基本概念,探討了它對軟體開發和維運之間協作的影響。DevOps不僅是一種技術,更多是一種文化,強調開發和維運團隊之間的協作與自動化。而接下來的日子裡,我們將從實作的角度,逐步掌握這些核心技能!
明天,我們將開始進行具體的實作!首先,我會帶大家申請一個 Azure DevOps 帳號,並使用這個平台來建立我們的第一個專案。Azure DevOps 提供了包括 版本控制、CI/CD、自動化測試 等多種功能,能夠幫助我們快速交付高品質的應用軟體。敬請期待!